1. Field of the Invention
This invention relates generally to memory management, and more particularly to a method and system for preferentially reallocating memory to a hypervisor from a plurality of partitions in virtualized environments.
2. Description of the Related Art
Data communication continues to increase, especially with regard to the Internet where not only voice data but also high bandwidth video is being transmitted. The increasing data rates and volumes of information transmitted in communication systems and computer networks are driving demand for faster and more compact computer servers. Data centers, driven by the force of server consolidation, employ virtualization technologies to increase manageability and resource sharing.
In a virtualized environment, a layer of software called the hypervisor runs between the bare hardware and the operating system (OS), and provides the illusion of multiple “virtual” machines (VM), also called partitions or domains. A virtual machine is a virtual data-processing system that appears to be at the exclusive disposal of a particular user, but whose functions are accomplished by sharing the resources of a physical data-processing system. The VM provides a functional simulation of a computer and its associated devices and is based on an abstract specification for a computing device that can be implemented in different ways in software and hardware.
In the rack mount environment of a data center, hypervisors are employed to increase manageability and resource sharing (server consolidation). A data center typically needs to satisfy the requirements from multiple applications and/or multiple worldoads each spanning multiple VM instances.
FIG. 1 is a schematic of an existing virtualized computing system 100, including hardware 102, which is a collection of resources including CPU, memory and input/output (I/O) devices that are being virtualized; a hypervisor 104 that virtualizes the hardware resources and provides the upper layer with the illusion of multiple independent “virtual” machines; kernels 106 that run on top each “virtual” machine, and applications 108 in partitions 110 that in turn run on top of the kernels 106 and which are completely oblivious of the virtualization. The kernel is the part of an operating system that performs basic functions such as allocating hardware resources.